Page({
  data: {
    cup1ShowC1: true,  // 第一个杯子显示c1图片（阳）
    cup2ShowC1: true,  // 第二个杯子显示c1图片（阳）
    isAnimating: false, // 是否正在动画中
    resultName: "请掷茭杯", // 结果名称
    resultType: null, // 结果类型: sacred(圣杯), happy(笑杯), sad(哭杯)
    showHistory: false, // 是否显示历史记录
    historyRecords: [] // 历史记录数组
  },

  onLoad: function() {
    // 页面加载时加载历史记录
    this.loadHistoryRecords();
  },
  
  loadHistoryRecords: function() {
    try {
      const historyStr = wx.getStorageSync('holy_history');
      if (historyStr) {
        const history = JSON.parse(historyStr);
        this.setData({
          historyRecords: history
        });
      }
    } catch (e) {
      console.error('读取历史记录失败', e);
    }
  },
  
  saveHistoryRecord: function(record) {
    try {
      // 获取现有记录
      let history = [];
      const historyStr = wx.getStorageSync('holy_history');
      if (historyStr) {
        history = JSON.parse(historyStr);
      }
      
      // 添加新记录到开头
      history.unshift(record);
      
      // 只保留最近20条记录
      if (history.length > 20) {
        history = history.slice(0, 20);
      }
      
      // 保存回本地存储
      wx.setStorageSync('holy_history', JSON.stringify(history));
      
      // 更新页面数据
      this.setData({
        historyRecords: history
      });
    } catch (e) {
      console.error('保存历史记录失败', e);
    }
  },
  
  clearHistory: function() {
    wx.showModal({
      title: '确认清除',
      content: '确定要清除所有历史记录吗？',
      success: (res) => {
        if (res.confirm) {
          // 清除本地存储中的历史记录
          wx.removeStorageSync('holy_history');
          
          // 更新页面数据
          this.setData({
            historyRecords: []
          });
          
          wx.showToast({
            title: '历史记录已清除',
            icon: 'success',
            duration: 1500
          });
        }
      }
    });
  },
  
  toggleHistory: function() {
    this.setData({
      showHistory: !this.data.showHistory
    });
  },

  onThrowCups: function() {
    if (this.data.isAnimating) return;
    
    this.setData({
      isAnimating: true,
      resultType: null // 重置结果类型
    });
    
    // 开始切换图片动画，模拟掷茭杯
    this.animateCup1();
    this.animateCup2();
    
    // 随机2-4秒后停止动画
    const duration = 2000 + Math.random() * 2000;
    setTimeout(() => {
      this.stopAnimation();
    }, duration);
  },
  
  animateCup1: function() {
    // 茭杯1的动画
    this.cup1Timer = setInterval(() => {
      this.setData({
        cup1ShowC1: !this.data.cup1ShowC1
      });
    }, 200); // 每200毫秒切换一次图片
  },
  
  animateCup2: function() {
    // 茭杯2的动画
    this.cup2Timer = setInterval(() => {
      this.setData({
        cup2ShowC1: !this.data.cup2ShowC1
      });
    }, 250); // 每250毫秒切换一次图片，与第一个杯子错开
  },
  
  stopAnimation: function() {
    // 停止两个茭杯的动画
    clearInterval(this.cup1Timer);
    clearInterval(this.cup2Timer);
    
    // 随机确定最终结果
    const cup1ShowC1 = Math.random() >= 0.5;
    const cup2ShowC1 = Math.random() >= 0.5;
    
    // 根据结果确定杯子类型名称
    let resultName = "";
    let resultType = "";
    
    if (cup1ShowC1 && cup2ShowC1) {
      resultName = "笑杯"; // 阳阳
      resultType = "happy";
    } else if (!cup1ShowC1 && !cup2ShowC1) {
      resultName = "哭杯"; // 阴阴
      resultType = "sad";
    } else {
      resultName = "圣杯"; // 阴阳或阳阴
      resultType = "sacred";
    }
    
    this.setData({
      cup1ShowC1: cup1ShowC1,
      cup2ShowC1: cup2ShowC1,
      isAnimating: false,
      resultName: resultName,
      resultType: resultType
    });
    
    // 保存历史记录
    const now = new Date();
    const dateStr = `${now.getFullYear()}-${(now.getMonth()+1).toString().padStart(2, '0')}-${now.getDate().toString().padStart(2, '0')} ${now.getHours().toString().padStart(2, '0')}:${now.getMinutes().toString().padStart(2, '0')}`;
    
    const record = {
      date: dateStr,
      cup1: cup1ShowC1,
      cup2: cup2ShowC1,
      resultName: resultName,
      resultType: resultType
    };
    
    this.saveHistoryRecord(record);
  },
  
  onUnload: function() {
    // 页面卸载时清除定时器
    if (this.cup1Timer) clearInterval(this.cup1Timer);
    if (this.cup2Timer) clearInterval(this.cup2Timer);
  }
}) 